<script setup>
import { ref } from 'vue'
import { onShow, onLoad } from '@dcloudio/uni-app'

// 页面状态
const isLoading = ref(true)
const isLogin = ref(false)
const isNavigating = ref(false) // 添加导航状态标记

onLoad(() => {
  checkLoginStatus()
})

onShow(() => {
  // 如果正在导航中，不重复检查
  if (!isNavigating.value) {
    checkLoginStatus()
  }
})

// 检查登录状态并跳转
function checkLoginStatus() {
  // 如果已经在导航中，直接返回
  if (isNavigating.value) {
    return
  }
  
  // 设置导航状态为true
  isNavigating.value = true
  
  // 检查是否已登录
  const token = uni.getStorageSync('token')
  const userInfo = uni.getStorageSync('userInfo')
  console.log('Token:', token)
  console.log('UserInfo:', userInfo)
  
  isLoading.value = false
  
  // 使用setTimeout延迟执行跳转，减轻页面渲染压力
  setTimeout(() => {
    if (token && userInfo) {
      isLogin.value = true
      // 已登录，使用navigateTo替代reLaunch
      uni.navigateTo({
        url: '/pages/user/profile',
        success: () => {
          console.log('成功跳转到个人中心')
          // 导航完成后重置状态
          setTimeout(() => {
            isNavigating.value = false
          }, 500)
        },
        fail: (err) => {
          console.error('导航失败:', err)
          // 如果navigateTo失败，尝试使用redirectTo
          uni.redirectTo({
            url: '/pages/user/profile',
            complete: () => {
              // 导航完成后重置状态
              setTimeout(() => {
                isNavigating.value = false
              }, 500)
            }
          })
        }
      })
    } else {
      isLogin.value = false
      // 未登录，使用navigateTo替代reLaunch
      uni.navigateTo({
        url: '/pages/user/register',
        success: () => {
          console.log('成功跳转到登录页')
          // 导航完成后重置状态
          setTimeout(() => {
            isNavigating.value = false
          }, 500)
        },
        fail: (err) => {
          console.error('导航失败:', err)
          // 如果navigateTo失败，尝试使用redirectTo
          uni.redirectTo({
            url: '/pages/user/register',
            complete: () => {
              // 导航完成后重置状态
              setTimeout(() => {
                isNavigating.value = false
              }, 500)
            }
          })
        }
      })
    }
  }, 100)
}
</script>

<template>
  <view class="loading-container" v-if="isLoading">
    <view class="loading"></view>
  </view>
  
  <view v-else>
    <view v-if="isLogin">
      <!-- 这里可以放一些已登录状态的临时内容 -->
    </view>
    <view v-else>
      <!-- 这里可以放一些未登录状态的临时内容 -->
    </view>
  </view>
</template>

<style>
.loading-container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}

.loading {
  width: 60rpx;
  height: 60rpx;
  border: 6rpx solid #f3f3f3;
  border-top: 6rpx solid #3cc51f;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
</style>